[C++] Fix double pointers to foreign ref types #73811
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When a C++ type
ForeignTy
is imported as a foreign reference type, Swift should strip a level of indirection from parameters of that type, so e.g.ForeignTy *
andForeignTy &
should be imported to Swift as justForeignTy
. However, it should only strip one level of indirection. importType() was instead stripping all levels, so things likeForeignTy **
andForeignTy *&
were also being incorrectly imported asForeignTy
. Narrow this behavior so it only applies to a single level of indirection and add a few test cases to pin down the specifics.Fixes rdar://123905345.